The present invention relates to World-Wide Web (web) browsers and, more particularly, to a system for selectively synchronizing the display and manipulation of web pages and other objects by a plurality of web browsers.
The World Wide Web (the “web”) is a system of Internet servers that supports hypertext and the hypermedia extension (collectively, “hypertext”). Hypertext is a database system that can be used to link software objects by including in an object a pointer to another object. Hypertext is used to link text, sounds, images, programs, and other software objects. The web is typically accessed with a web browser, a computer program that fetches and displays objects, including web documents or pages formatted with HTML (Hypertext Markup Language) or XML (eXtended Markup Language). Specially formatted text or icons (hyperlinks or links) in the web page are hypertext pointers to other objects. A user can cause the browser to display another object by selecting the appropriate link. In addition, a browser can display dynamic effects produced by manipulation of software objects (such as a change in text color) upon the occurrence of an event specified in the displayed page (for example, movement of a cursor). Web browsers also typically include search capabilities to facilitate locating web pages of interest to the user. While the web potentially links millions of individual users and millions of documents, historically the model of the web has been that of the individual user searching out and displaying documents of interest to that user.
Synchronization technology has been developed to facilitate collaborative use of the web by groups of users. Page and object synchronization permits a plurality of web browsers engaged in a synchronized session to simultaneously display the same web page and the results of an action manipulating a displayed object. Synchronized page display and interaction with objects are bases of web conferencing services and are potentially valuable tools for e-commerce. For example, a buyer and a seller can simultaneously view the same product specifications or other commercial documentation.
While page and object synchronization facilitates global display of web pages and other objects, there are circumstances where it is desirable that certain actions be limited to a subset of users in the session. For example, during an e-commerce session a sales agent may wish to refer to a proprietary price list without disclosing the document to the potential purchaser. However, if the price list is opened on the agent's page-synchronized browser it will be displayed on the synchronized display of the purchaser's browser. On the other hand, the agent may wish to open an explanatory document in a window or frame for viewing by the purchaser. However, page synchronization does not support the use of frames. If one member of a session selects a hyperlink to load a new page into a frame displayed by a first web browser, the page will not necessarily be loaded in the proper frame on the remaining browsers of the session.
Likewise, object synchronization permits one user to cause an action manipulating a displayed object to be replicated on the browsers of the other users in the synchronized session. For example, a script language can be used to specify the occurrence of an action (such as, a change in text color) upon the happening of an event (such as, a mouse click) associated with an object (a section of text). When a first web browser of the synchronized session detects the event, it signals the other browsers of the session to display the same action as if the local user has instigated the event. However, it may be desirable that the action be initiated or displayed on a limited set of browsers of the session. For example, the sales agent may wish to display a message on a customer's remote display in response to a mouse click on the agent's local display without displaying the message locally.
What is desired, therefore, is a system to control object and page synchronization permitting user inputs at selected browsers engaged in a synchronized session to manipulate and display pages and other objects on a subset of the browsers of the session.